home *** CD-ROM | disk | FTP | other *** search
- *****************************************************************************
- * *
- * Dot Routine *
- * *
- * Start Date : 3/3/91 *
- * Last Update : 3/3/91 *
- * Code : Melt Down *
- * *
- *****************************************************************************
-
- ; Include the macros
-
- Incdir Df1:
- Include Source/Macro
-
- *****************************************************************************
-
- ; Dont forget to use chip ram
-
- Chip
-
- *****************************************************************************
-
- ; Kill the operating system for good mesure
-
- Kill
-
- *****************************************************************************
-
- ; Load custom and set up copper list
-
- Lea Custom,A5
- Move.l #Copper,Cop1lch(a5)
-
- *****************************************************************************
-
- ; Clear Some Memory
-
- Blitwait
- Move.l #$70000,Bltdpth(a5)
- Move.l #-1,Bltafwm(a5)
- Move.w #0,Bltdmod(a5)
- Move.l #$01000000,Bltcon0(a5)
- Move.w #258*64+20,Bltsize(a5)
-
- *****************************************************************************
-
- ; Main routine here
-
- Mouse
- Move.l $dff004,d2
- And.l #$1ff00,d2
- Cmp.l #$100,d2
- Bne.s Mouse
- Eor.l #$4000,ScreenPtr
- Eor.l #$4000,B1l
- Bsr Clear
- Bsr DoAllDots
- Bsr UpDate
- Tstmice Mouse ; Pressed the mouse
-
- *****************************************************************************
-
- ; Return operating system and go back to user
-
- Heal
- Clr.l D0 ; No error
- Rts
-
- *****************************************************************************
-
- Clear
- Blitwait ; Blitter Nasty But Why Do
- Move.l #$01000000,Bltcon0(a5) ; Clear
- Move.w #$0000,Bltdmod(a5) ; Skip No Bytes
- Move.l ScreenPtr,Bltdpth(A5) ; Set Dest
- Move.l #-1,Bltafwm(a5) ; Use All Bits
- Move.w #128*64+20,Bltsize(a5) ; Fill Half Screen
- Movem.l a0-a6/d0-d7,-(a7) ; Save The Regs
- Movem.l RegFiller(pc),a1-a6/d0-d7 ; Clear The Regs
- Move.l ScreenPtr,A0
- Add.l #10240,A0
-
- ; 5120/56 = 91.42 Rnd Up = 92
- Rept 92 ; Rept it 58 times
- Movem.l a1-a6/d0-d7,-(a0) ; Clear 56 Butes
- Endr ; End repeat
- Movem.l (a7)+,a0-a6/d0-d7 ; Restor Regs
- Rts
- RegFiller
- Dcb.l 16,0
- Rts
-
- *****************************************************************************
-
- UpDate
- Lea Form1,A6
- Movem.w (a6)+,d0-d4
- Move.w #$1fe,d5
- LoopUp
- Add.w d1,(a6)
- And.w d5,(a6)+
- Add.w d2,(a6)
- And.w d5,(a6)+
- Add.w d3,(a6)
- And.w d5,(a6)+
- Add.w d4,(a6)
- And.w d5,(a6)+
- Dbf D0,LoopUp
- Rts
-
- *****************************************************************************
-
- DoAllDots
- Lea Form1,A6
- Lea Shifts,A0
- Move.w (a6)+,D7
- Add.w #8,a6
- Lea XSin,A4 ;xsin
- Lea YSin,A3 ;ysin
- Move.l ScreenPtr,A1
- Loop
- Movem.w (a6)+,d0-d3
- Move.w (a4,d0),d0
- Add.w (a4,d2),d0
- Move.w (A3,d1),d1
- Add.w (A3,d3),d1
- Add.w (a0,d0),D1
- Move.w 2(a0,d0),D0
- Or.b d0,(a1,d1)
- Dbf D7,Loop
- Rts
-
- *****************************************************************************
-
- ScreenPtr
- Dc.l $70000
-
- *****************************************************************************
-
- ShfSet Macro
- Dc.w \1,%0000000010000000
- Dc.w \1,%0000000001000000
- Dc.w \1,%0000000000100000
- Dc.w \1,%0000000000010000
- Dc.w \1,%0000000000001000
- Dc.w \1,%0000000000000100
- Dc.w \1,%0000000000000010
- Dc.w \1,%0000000000000001
- Endm
- Shifts
- A set 0
- Rept 40
- ShfSet a
- A Set a+1
- Endr
-
- *****************************************************************************
-
- ; All copper list after here
-
- Copper
-
- Spr_Off ; Switch sprites off
- Cmove $2c81,Diwstrt
- Cmove $2cc1,Diwstop
- Cmove $0038,Ddfstrt
- Cmove $00d0,Ddfstop
- Cmove $0000,Bpl1mod
- Cmove $0000,Bpl2mod
- Cmove $0000,Color00
- Cmove $0fff,Color01
- Cmove $0007,Bpl1pth
- B1l
- Cmove $0000,Bpl1ptl
- Cmove $1200,Bplcon0
- Endcop
-
- *****************************************************************************
-
- XSin
- Rept 2
- dc.w 159*4,159*4,159*4,159*4,159*4,158*4,158*4,158*4
- dc.w 157*4,157*4,157*4,156*4,156*4,155*4,154*4,154*4
- dc.w 153*4,152*4,151*4,151*4,150*4,149*4,148*4,147*4
- dc.w 146*4,144*4,143*4,142*4,141*4,140*4,138*4,137*4
- dc.w 136*4,134*4,133*4,131*4,130*4,128*4,127*4,125*4
- dc.w 124*4,122*4,120*4,119*4,117*4,115*4,113*4,112*4
- dc.w 110*4,108*4,106*4,104*4,103*4,101*4,99*4,97*4
- dc.w 95*4,93*4,91*4,89*4,87*4,85*4,83*4,81*4
- dc.w 80*4,78*4,76*4,74*4,72*4,70*4,68*4,66*4
- dc.w 64*4,62*4,60*4,58*4,56*4,55*4,53*4,51*4
- dc.w 49*4,47*4,46*4,44*4,42*4,40*4,39*4,37*4
- dc.w 35*4,34*4,32*4,31*4,29*4,28*4,26*4,25*4
- dc.w 23*4,22*4,21*4,19*4,18*4,17*4,16*4,15*4
- dc.w 13*4,12*4,11*4,10*4,9*4,8*4,8*4,7*4
- dc.w 6*4,5*4,5*4,4*4,3*4,3*4,2*4,2*4
- dc.w 2*4,1*4,1*4,1*4,0*4,0*4,0*4,0*4
- dc.w 0*4,0*4,0*4,0*4,0*4,1*4,1*4,1*4
- dc.w 2*4,2*4,2*4,3*4,3*4,4*4,5*4,5*4
- dc.w 6*4,7*4,8*4,8*4,9*4,10*4,11*4,12*4
- dc.w 13*4,15*4,16*4,17*4,18*4,19*4,21*4,22*4
- dc.w 23*4,25*4,26*4,28*4,29*4,31*4,32*4,34*4
- dc.w 35*4,37*4,39*4,40*4,42*4,44*4,46*4,47*4
- dc.w 49*4,51*4,53*4,55*4,56*4,58*4,60*4,62*4
- dc.w 64*4,66*4,68*4,70*4,72*4,74*4,76*4,78*4
- dc.w 80*4,81*4,83*4,85*4,87*4,89*4,91*4,93*4
- dc.w 95*4,97*4,99*4,101*4,103*4,104*4,106*4,108*4
- dc.w 110*4,112*4,113*4,115*4,117*4,119*4,120*4,122*4
- dc.w 124*4,125*4,127*4,128*4,130*4,131*4,133*4,134*4
- dc.w 136*4,137*4,138*4,140*4,141*4,142*4,143*4,144*4
- dc.w 146*4,147*4,148*4,149*4,150*4,151*4,151*4,152*4
- dc.w 153*4,154*4,154*4,155*4,156*4,156*4,157*4,157*4
- dc.w 157*4,158*4,158*4,158*4,159*4,159*4,159*4,159*4
- Endr
-
- *****************************************************************************
-
- YSin
- Rept 2
- dc.w 127*40,127*40,127*40,127*40,127*40,127*40,126*40,126*40
- dc.w 126*40,125*40,125*40,125*40,124*40,124*40,123*40,123*40
- dc.w 122*40,122*40,121*40,120*40,120*40,119*40,118*40,117*40
- dc.w 116*40,115*40,115*40,114*40,113*40,112*40,111*40,109*40
- dc.w 108*40,107*40,106*40,105*40,104*40,103*40,101*40,100*40
- dc.w 99*40,97*40,96*40,95*40,93*40,92*40,91*40,89*40
- dc.w 88*40,86*40,85*40,83*40,82*40,80*40,79*40,77*40
- dc.w 76*40,74*40,73*40,71*40,70*40,68*40,67*40,65*40
- dc.w 64*40,62*40,60*40,59*40,57*40,56*40,54*40,53*40
- dc.w 51*40,50*40,48*40,47*40,45*40,44*40,42*40,41*40
- dc.w 39*40,38*40,36*40,35*40,34*40,32*40,31*40,30*40
- dc.w 28*40,27*40,26*40,24*40,23*40,22*40,21*40,20*40
- dc.w 19*40,18*40,16*40,15*40,14*40,13*40,12*40,12*40
- dc.w 11*40,10*40,9*40,8*40,7*40,7*40,6*40,5*40
- dc.w 5*40,4*40,4*40,3*40,3*40,2*40,2*40,2*40
- dc.w 1*40,1*40,1*40,0*40,0*40,0*40,0*40,0*40
- dc.w 0*40,0*40,0*40,0*40,0*40,0*40,1*40,1*40
- dc.w 1*40,2*40,2*40,2*40,3*40,3*40,4*40,4*40
- dc.w 5*40,5*40,6*40,7*40,7*40,8*40,9*40,10*40
- dc.w 11*40,12*40,12*40,13*40,14*40,15*40,16*40,18*40
- dc.w 19*40,20*40,21*40,22*40,23*40,24*40,26*40,27*40
- dc.w 28*40,30*40,31*40,32*40,34*40,35*40,36*40,38*40
- dc.w 39*40,41*40,42*40,44*40,45*40,47*40,48*40,50*40
- dc.w 51*40,53*40,54*40,56*40,57*40,59*40,60*40,62*40
- dc.w 64*40,65*40,67*40,68*40,70*40,71*40,73*40,74*40
- dc.w 76*40,77*40,79*40,80*40,82*40,83*40,85*40,86*40
- dc.w 88*40,89*40,91*40,92*40,93*40,95*40,96*40,97*40
- dc.w 99*40,100*40,101*40,103*40,104*40,105*40,106*40,107*40
- dc.w 108*40,109*40,111*40,112*40,113*40,114*40,115*40,115*40
- dc.w 116*40,117*40,118*40,119*40,120*40,120*40,121*40,122*40
- dc.w 122*40,123*40,123*40,124*40,124*40,125*40,125*40,125*40
- dc.w 126*40,126*40,126*40,127*40,127*40,127*40,127*40,127*40
- Endr
-
- *****************************************************************************
-
- XY Macro
- Dc.w (\1*2)&$1fe,(\2*2)&$1fe,(\3*2)&$1fe,(\4*2)&$1fe
- Endm
- Form1
- Dc.w 256-1
- Dc.w 2,2,2,2
- A Set 0
- B Set 256
-
- Rept 256
- XY A,B,b-a,A-B
- ; XY b,A,a-B,b+a
-
- ; XY A,B,B,A
- A Set a+2
- B Set b-2
- Endr
-
- *****************************************************************************
-
-
-
-